<?php
require_once $ubi['SERVER']['SERVER_ROOT'] . '/controller/ctlAbstract.php';
require_once $ubi['SERVER']['SERVER_ROOT'] . '/model/user.php';
require_once $ubi['SERVER']['SERVER_ROOT'] . '/business/busUser.php';
require_once $ubi['SERVER']['SERVER_ROOT'] . '/utility/generalFunctions.php';

class ForgotController extends AbstractController {
	private $_userBus;
	
	
	public function __construct() {
		$this->_userBus = new UserBus();
	}
	
	public function main(array $getVars) {
		global $ubi;
		
		if ($getVars['type'] == 'password') {
			if (isset($_POST['txtEmail'])) {
				//get user by email
				$user = $this->_userBus->getUserByEmail($_POST['txtEmail']);
				
				if ($user) {				
					//create a token
					$token = GeneralFunctions::createToken();
					
					//change token of the user
					$user->setToken($token);
					
					//update token
					$result = $this->_userBus->updateToken($user);
					
					if ($result) {
						//send email confirm
						$link = $ubi['SERVER']['SITE_ROOT'] . 'index.php?Change&type=password&token=' . $token;
						$to = $user->getEmail();
						$subject = 'Xác nhận thay đổi mật khẩu';
						$message = '<h1>Xác nhận thay đổi mật khẩu</h1>' .
						'<p>Bạn hay một người nào đó đã yêu cầu thay đổi mật khẩu. Để xác nhận thông tin trên, bạn hãy click vào link sau:</p>' .
						"<a href=\"" . $link . '">Click vào đây</a><br />' .
						'Hoặc paste link này vào được trình duyệt của bạn: ' . $link . '<br />';
						
						GeneralFunctions::ubiMail($to, $subject, $message);
						
						$notice = "IssueTokenSuccessfully";
						require_once $ubi['SERVER']['SERVER_ROOT'] . '/view/viewNotice.php';
					} else {
						$notice = "CanNotChangePassword";
						require_once $ubi['SERVER']['SERVER_ROOT'] . '/view/viewNotice.php';
					}
				} else {
					$notice = "EmailDoesNotExist";
					require_once $ubi['SERVER']['SERVER_ROOT'] . '/view/viewNotice.php';
				}
			} else {
				require_once $ubi['SERVER']['SERVER_ROOT'] . '/view/viewForgotPassword.php';
			}
		} else {
			$notice = "PageNotFound";
			require_once $ubi['SERVER']['SERVER_ROOT'] . '/view/viewNotice.php';
		}
	}
}
?>